/**
 * 有一个箱子容量为 V（正整数，0≤V≤20000），同时有 n 个物品（0<n≤30），
 * 每个物品有一个体积（正整数）。
 * 要求n个物品中，任取若干个装入箱内，使箱子的剩余空间为最小。
**/

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxv = 20000+7;
ll n, v;
ll a[35], dp[maxv];
ll ans;
int main() {
  cin>>v>>n; for(int i=0; i<n; ++i) cin>>a[i];
  for(int i=0;i<n;i++)//外循环，遍历每个箱子
	{
		for(int j=v;j>=a[i];j--)//内循环，遍历每个容积
		{
			if(dp[j]>( dp[j-a[i]]+a[i] ))
			   dp[j]=dp[j];
			else
				dp[j]=dp[j-a[i]]+a[i];  //取最大值，最优解

		}
	}
  ll ans = 0;
  for(int i=v; i>0; --i) {
    ans = max(dp[i], ans);
  }
  cout<<v-ans<<endl;
}
